#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "infirmier.h"
/*--------------------------------------------------------------------------------------------*/
/*void flush_input(void)
{
	int ch;
	ch=getchar();
	while(ch != EOF && ch !='\n')
	{
		ch=getchar();

	}
}
*/
/*void saisir_infirmier(infirmier *M,char fichier_infirmier[])
{
int ID;
char ma[10]="masculin";
char fe[10]="feminin";
/*int ascii,c=0,i,n,t=0 ;
char ch1[100];

do
{
printf("donner le nom\n");
scanf("%s",M->nom);
}
while((strlen(M->nom))<3);
do
{
printf("donner le prenom\n");
scanf("%s",M->prenom);
}
while((strlen(M->prenom))<3);
do
{
printf("donner le sexe\n");
scanf("%s",M->sexe);
}
while(((strcmp(ma,M->sexe))!=0)&&((strcmp(fe,M->sexe))!=0));
do
{
printf("donner la date d'embauche\n");
scanf("%d%d%d",&(M->date_embauche.jour),&(M->date_embauche.mois),&(M->date_embauche.annee));
}
while(((M->date_embauche.jour)>31)||((M->date_embauche.jour)<1)||((M->date_embauche.mois)<1)||((M->date_embauche.mois)>12)||((M->date_embauche.annee)<2014));
if((M->date_embauche.mois)==2)
{
do
{
printf("erreur de saisie du jour !!!\n");
printf("donner le jour d'embauche correctte !!\n");
scanf("%d",&(M->date_embauche.jour));
}
while(((M->date_embauche.jour)>28)||((M->date_embauche.jour)<1));
}
do
{
printf("donner la date de naissance\n");
scanf("%d%d%d",&(M->date_naissance.jour),&(M->date_naissance.mois),&(M->date_naissance.annee));
}
while(((M->date_naissance.jour)>31)||((M->date_naissance.jour)<1)||((M->date_naissance.mois)<1)||((M->date_naissance.mois)>12)||((M->date_naissance.annee)>1989));
if((M->date_naissance.mois)==2)
{
do
{
printf("erreur de saisie du jour !!!\n");
printf("donner le jour de naissance correctte !!\n");
scanf("%d",&(M->date_naissance.jour));
}
while(((M->date_embauche.jour)>28)||((M->date_embauche.jour)<1));
}
printf("donner le role\n");
scanf("%s",M->role);

/*
do
{
	flush_input();
	printf("donner la cin\n");
	fgets(ch1,9,stdin);
	t=sscanf(ch1,"%ld",&(M->cin));
	n=strlen(ch1);
	printf("%d | %s",n,ch1);
	for (i=0;i<n ;i++)
	{
		ascii = ch1[i];
		if ((ascii>47)&&(ascii<58))
			c++ ;
	}
}
while((c!=n && t!=1)||(n!=8));
fflush(stdin);










do
{
printf("donner la cin\n");
scanf("%ld",&(M->cin));
}
while(((M->cin)<1000000)||((M->cin)>99999999));
do
{
printf("donner l'age\n");
scanf("%d",&(M->age));
}
while(((M->age)<26)||((M->age)>75));
do
{
printf("donner le num d_identifiant\n");
scanf("%d",&ID);
}
while((ID<1)||(ID>10000));

 
FILE *f ;
    f=fopen(fichier_infirmier,"rb") ;
if (f!= NULL)
     {
      while(fread(M,sizeof(infirmier),1,f)!=0)
       {
          if( ID==M->ID)
            {
                do
                {
                 printf("donner un autre  num d_identifiant\n");
                 scanf("%d",&ID);
                }
                while(((ID)<1)||((ID)>10000)||(ID==M->ID));
            }
       }
M->ID=ID;
     }
else
{
printf("erreur lors de l'ouverture du fichier_infirmier\n");
}
fclose(f);
}*/
/*--------------------------------------------------------------------------------*/

void enregistrer_infirmier(char fichier_infirmier[],infirmier *M,int *n)
{
FILE*f;
f=fopen(fichier_infirmier,"ab");
if(f!=NULL)
{
 if((*n)<MAX)
  {
 /*saisir_infirmier(M,"infirmier.txt");*/
 fwrite(M,sizeof(infirmier),1,f);
 (*n)++;
  }
}
else
{
printf("erreur lors de l'ouverture du fichier_infirmier\n");
}
fclose(f);
}
/*--------------------------------------------------------------------------------------------*/
void supprimer_infirmier_ID( char fichier_infirmier[],int ID)
{
    char tmp_infirmier[]="tmp_infirmier.txt";
    char archive_infirmier[]="archive_infirmier.txt";
    FILE *f ;
    FILE *t ;
    FILE *a ;
    infirmier M;
    f=fopen(fichier_infirmier,"rb") ;
    t=fopen(tmp_infirmier,"wb") ;
    a=fopen(archive_infirmier,"wb");
    if (f!= NULL && t!=NULL && a!=NULL)
     {
      while(fread(&M,sizeof(infirmier),1,f)!=0)
       {
          if( ID!=M.ID)
            {
             fwrite(&M,sizeof(infirmier),1,t) ;
            }
           if( ID==M.ID)
            {
             fwrite(&M,sizeof(infirmier),1,a) ;
   printf("-----------------------\n");
   printf("le infirmier ayant le numero ID  %d est retiré de la liste et est archiver\n",ID );
   printf("-----------------------\n");
            }
       }
     }

     fclose(f) ;
     fclose(t) ;
     fclose(a) ;
     f=fopen(fichier_infirmier,"wb") ;
     t=fopen(tmp_infirmier,"rb") ;
     if(f!=NULL && t!=NULL)
{
     while(fread (&M,sizeof(infirmier),1,t)!=0)
     {fwrite(&M,sizeof(infirmier),1,f) ;}
}
     fclose(f) ;
     fclose(t) ;     
     t=fopen(tmp_infirmier,"wb+") ;
     if (t!=NULL)	
     {
      printf("le fichier tmp_infirmier est vider\n\n");
     }
}
/*-------------------------------------------------------------------------------------------------*/
void afficher_archive_infirmier(char archive_infirmier[],infirmier M)
{
FILE *a;
a=fopen(archive_infirmier,"rb");
if(a!=NULL)
{
while(fread(&M,sizeof(infirmier),1,a)!=0)
{
printf("nom:%s\tprenom:%s\tsexe:%s\trole:%s\tcin:%ld\tage:%d\tidentifiant:%d\tdate de naissance:%d/%d/%d\tdate d'embauche:%d/%d/%d\n\n\n",M.nom,M.prenom,M.sexe,M.role,M.cin,M.age,M.ID,M.date_naissance.jour,M.date_naissance.mois,M.date_naissance.annee,M.date_embauche.jour,M.date_embauche.mois,M.date_embauche.annee);
}
}
else
printf("l'archive est vide\n");
fclose(a);
}
/*------------------------------------------------------------*/
/*void afficher_infirmier_ID(char fichier_infirmier[],infirmier M,int ID)
{
FILE*f;

f=fopen(fichier_infirmier,"rb");
if(f!=NULL)
{
	fread(&M,sizeof(infirmier),1,f);
   do  
  {
        if(ID==M.ID)
        { 
         printf("nom:%s\tprenom:%s\tsexe:%s\trole:%s\tcin:%ld\tage:%d\tidentifiant:%d\tdate de naissance:%d/%d/%d\tdate d'embauche:%d/%d/%d\n\n\n",M.nom,M.prenom,M.sexe,M.role,M.cin,M.age,M.ID,M.date_naissance.jour,M.date_naissance.mois,M.date_naissance.annee,M.date_embauche.jour,M.date_embauche.mois,M.date_embauche.annee);
        }
  }
  while(((fread(&M,sizeof(infirmier),1,f))!=0)&&(feof(f)!=1));
}
else
{
printf("erreur lors de l'ouverture du fichier_infirmier");
}
fclose(f);
}
*/
/*-ok---------------------------------------------------------------------------------------*/
int existence_infirmier_ID(char fichier_infirmier[],infirmier M,int ID)
{
FILE*f;
f=fopen(fichier_infirmier,"rb");
if(f!=NULL)
{
	fread(&M,sizeof(infirmier),1,f);
   do  
  {
        if(ID==M.ID)
        {
        return 1;
        }
  }
  while(((fread(&M,sizeof(infirmier),1,f))!=0)&&(feof(f)!=1));
}
else
{
printf("erreur lors de l'ouverture du fichier_infirmier");
}
fclose(f);
}
/*--ok-------------------------------------------------------------------------------------*/
/*void afficher_liste_infirmier(char fichier_infirmier[])
{
FILE*f;
infirmier M;
f=fopen(fichier_infirmier,"rb");
if(f!=NULL)
{
strcpy (M.nom," " ) ;
strcpy(M.prenom," ");
M.age=0;
M.cin=0;
strcpy(M.role," ");
M.ID=0;
strcpy(M.sexe," ");
M.date_embauche.jour=0;
M.date_embauche.mois=0;
M.date_embauche.annee=0;
M.date_naissance.jour=0;
M.date_naissance.mois=0;
M.date_naissance.annee=0;


   fread(&M,sizeof(infirmier),1,f);
   do
  {
   printf("nom:%s\tprenom:%s\tsexe:%s\trole:%s\tcin:%ld\tage:%d\tidentifiant:%d\tdate de naissance:%d/%d/%d\tdate d'embauche:%d/%d/%d\n\n\n\n\n",M.nom,M.prenom,M.sexe,M.role,M.cin,M.age,M.ID,M.date_naissance.jour,M.date_naissance.mois,M.date_naissance.annee,M.date_embauche.jour,M.date_embauche.mois,M.date_embauche.annee);

  }
   while(((fread(&M,sizeof(infirmier),1,f))!=0)&&(feof(f)!=1));
}
else
{
printf("erreur lors de l'ouverture du fichier_infirmier");
}
fclose(f);
}*/
/*----------------------------------------------------------------------------------------------------------------------------------------------*/
/*void modifier_infirmier_ID( char fichier_infirmier[],infirmier M,int ID)
{   
    int choix2;
    char ma[10]="masculin";
    char fe[10]="feminin";
    char tmp_infirmier[]="tmp_infirmier.txt";
    FILE *f ;
    FILE *t ;
    f=fopen(fichier_infirmier,"rb+") ;
    t=fopen(tmp_infirmier,"wb+") ;
    
    if (f!= NULL)
     {
      while(fread(&M,sizeof(infirmier),1,f)!=0)
       {
            if(ID==M.ID)
             {
             afficher_infirmier_ID(fichier_infirmier,M,ID);
             printf("taper le numero du coordonners a modifier\n1:nom\t2:prenom\t3:sexe\t4:date d_ambauche\t5:date de naissance\t6:role\t7:cin\t8:age\t9:num d_identifiant\n");
             
/*ouvrir le fichier_infirmier en mode ecriture*/ 

 /*choix2=choix_num();
              switch(choix2)
             {
case 1:            do
                   {
                   printf("donner le nom\n");
                   scanf("%s",M.nom);
                   }
                   while((strlen(M.nom))<3);
break;
case 2:
                   do
                   {
                   printf("donner le prenom\n");
                   scanf("%s",M.prenom);
                   }
                   while((strlen(M.nom))<3);
break;
case 3:
                    do
                    {
                    printf("donner le sexe\n");
                    scanf("%s",M.sexe);
                    }
                    while(((strcmp(ma,M.sexe))!=0)&&((strcmp(fe,M.sexe))!=0));
break;
case 4:             do
                    {
                    printf("donner la date d'embauche\n");
                    scanf("%d%d%d",&(M.date_embauche.jour),&(M.date_embauche.mois),&(M.date_embauche.annee));
                    }
while(((M.date_embauche.jour)>31)||((M.date_embauche.jour)<1)||((M.date_embauche.mois)<1)||((M.date_embauche.mois)>12)||((M.date_embauche.annee)<2014));
                    if((M.date_embauche.mois)==2)
                    {
                    do
                    {
                    printf("erreur de saisie du jour !!!\n");
                    printf("donner le jour d'embauche correctte !!\n");
                    scanf("%d",&(M.date_embauche.jour));
                    }
                    while(((M.date_embauche.jour)>28)||((M.date_embauche.jour)<1));
                    }
break;
case 5:
                     do
                     {
                      printf("donner la date de naissance\n");
                      scanf("%d%d%d",&(M.date_naissance.jour),&(M.date_naissance.mois),&(M.date_naissance.annee));
                     }
while(((M.date_naissance.jour)>31)||((M.date_naissance.jour)<1)||((M.date_naissance.mois)<1)||((M.date_naissance.mois)>12)||((M.date_naissance.annee)>1989));
                    if((M.date_naissance.mois)==2)
                    {
                     do
                     {
                     printf("erreur de saisie du jour !!!\n");
                     printf("donner le jour de naissance correctte !!\n");
                     scanf("%d",&(M.date_naissance.jour));
                     }
                     while(((M.date_embauche.jour)>28)||((M.date_embauche.jour)<1));
                     }
break;
case 6:              printf("donner le role\n");
                     scanf("%s",M.role);
                     
break;
case 7:              do
                     {
                     printf("donner la cin\n");
                     scanf("%ld",&(M.cin));
                     }
                     while(((M.cin)<1000000)||((M.cin)>99999999));
break;
case 8:             do
                    {
                    printf("donner l'age\n");
                    scanf("%d",&(M.age));
                    }
                    while(((M.age)<26)||((M.age)>75));
break;
case 9:             do
                    {
                    printf("donner le num d_identifiant\n");
                    scanf("%d",&(M.ID));
                    }
                    while(((M.ID)<1)||((M.ID)>10000));
break;
default: printf("\nmauvais choix\n");

  }
              
             }
  	     fwrite(&M,sizeof(infirmier),1,t) ;
             }
       } fclose(f) ;
         fclose(t) ;


       
     f=fopen(fichier_infirmier,"wb+") ;
     t=fopen(tmp_infirmier,"rb") ;
     if(f!=NULL && t!=NULL)
{
     while(fread (&M,sizeof(infirmier),1,t)!=0)
     {fwrite(&M,sizeof(infirmier),1,f) ;}
}
     fclose(f) ;
     fclose(t) ;  
     t=fopen(tmp_infirmier,"wb+") ;
     if (t!=NULL)
     {
      printf("le fichier tmp_infirmier est vider\n\n");
     }



   printf("-----------------------\n");
   printf("le patient ayant le numero d'identification  %d est modifier\n",ID );
   printf("-----------------------\n");

    
}*/
/*-----------------------------------------------------------------------------------------*/
void init_liste_infirmier(char fichier_infirmier[])
{
infirmier M;
FILE *f;
f=fopen(fichier_infirmier,"wb+");
if(f!=NULL)
{
 printf("le fichier infirmier est initialiser\n");
}           
else
{
printf("erreur lors de l'ouverture du fichier_infirmier\n");
}
fclose(f); 
}
/*------------------------------------------------------------------------------------------------------------------------*/
